<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${package.Mapper}.${table.mapperName}">

    <#if enableCache>
        <!-- 开启二级缓存 -->
        <cache type="org.mybatis.caches.ehcache.LoggingEhcache"/>

    </#if>
    <#if baseResultMap>
        <!-- 通用查询映射结果 -->
        <resultMap id="BaseResultMap" type="${package.Entity}.${entity}">
            <#list table.fields as field>
                <#if field.keyFlag><#--生成主键排在第一位-->
                    <id column="${field.propertyName}" property="${field.propertyName}"/>
                </#if>
            </#list>
            <#list table.commonFields as field><#--生成公共字段 -->
                <result column="${field.propertyName}" property="${field.propertyName}"/>
            </#list>
            <#list table.fields as field>
                <#if !field.keyFlag><#--生成普通字段 -->
                    <result column="${field.propertyName}" property="${field.propertyName}"/>
                </#if>
            </#list>
        </resultMap>

    </#if>
    <#if baseColumnList>
        <!-- 通用查询结果列 -->
        <sql id="Base_Column_List">
            <#list table.fields as field>
                <#if field_has_next>
                    my.${field.name} AS ${field.propertyName},
                </#if>
                <#if !field_has_next>
                    my.${field.name} AS ${field.propertyName}
                </#if>
            </#list>
        </sql>

        <!-- 通用查询条件 -->
        <sql id="Base_Where_Sql">
            <trim prefix="where" prefixOverrides="AND">
                <#list table.fields as field>
                    <if test="${field.propertyName} != null">
                        AND my.${field.name} = ${"#"}{${field.propertyName}}
                    </if>
                </#list>
            </trim>
        </sql>
    </#if>

</mapper>